﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace KATAJAVI_SIA
{
    public partial class ValidarAdmin : Form
    {
        KATAJAVI call = new KATAJAVI();
        DataClassesDataContext BEDE = new DataClassesDataContext();
        IEnumerable<MECANICO> lista;
        public ValidarAdmin()
        {
            InitializeComponent();
        }

        public int ComprobarMecanico(string rut, string clave)
        {
            lista = BEDE.MECANICO.Where(a => a.softdelete != 0);
            if(clave=="")
            {
                foreach(MECANICO aux in lista)
                {
                  if(aux.rut_mecanico == int.Parse(rut)){ return 1;} // se encontro el mecanico re
                }
                return 0;
            }
            else
            {
                int num = call.ValidarNumeros(tbx_claveadmin.Text);
                    if (num == 1)
                    {
                        foreach (MECANICO aux in lista)
                        {
                            if (aux.rut_mecanico == int.Parse(rut))
                            {
                                if (aux.clave == int.Parse(clave))
                                {
                                    if (aux.nivel == 1) { return 2; }
                                    return 1;
                                }
                            }
                        }
                        return 0;
                    }
                    else { label3.Text = "Los datos ingresados no coinciden."; }
                }
                return 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int valrut = call.ValidarRut(tbx_AdminRut.Text, tbx_AdminRutDig.Text);
            {
                if(tbx_claveadmin.Text != "")
                {
                    if(valrut == 0)
                    {
                        label3.Text = "El RUT ingresado no es valido.";
                    }
                    else
                    {
                        int a = ComprobarMecanico(tbx_AdminRut.Text, "");
                        if (a == 0)
                        {
                            label3.Text = "El RUT ingresado no fue registrado.";
                        }
                        if(a == 1)
                        {
                            int permiso = ComprobarMecanico(tbx_AdminRut.Text, tbx_claveadmin.Text);
                            if(permiso == 0){label3.Text = "Los datos ingresados no coinciden.";}
                            if(permiso == 1){label3.Text = "El RUT ingresado no tiene privilegios de administrador.";}
                            if(permiso == 2)
                            {
                                label3.Text = "Ingresando...";
                                InterfazAdmin nueva = new InterfazAdmin();
                                nueva.Show();
                                Close();
                            }
                        }
                    }
                }
                else{label3.Text = "No se ha ingresado clave.";}
            }
        }

        private void ValidarAdmin_Load(object sender, EventArgs e)
        {
            label3.Text = "Ingrese sus datos.";
        }

        private void tbx_rutadmin_TextChanged(object sender, EventArgs e)
        {
            tbx_AdminRut.Text = tbx_AdminRut.Text.Trim();
            label3.Text = "Ingrese sus datos.";
        }

        private void tbx_claveadmin_TextChanged(object sender, EventArgs e)
        {
            tbx_claveadmin.Text = tbx_claveadmin.Text.Trim();
            label3.Text = "Ingrese sus datos.";
        }
    }
}
